package com.ljy.my_study.lintcode.旋转图像;
/** 
* @author James
* @date 2019年5月1日 
*/
public class TestMain {
//	给定一个N×N的二维矩阵表示图像，90度顺时针旋转图像。
//
//
//
//	您在真实的面试中是否遇到过这个题？  
//	样例
//	样例1：
//
//	输入:[[1,2],[3,4]]
//	输出:[[3,1],[4,2]]
//	样例 2:
//
//	输入:[[1,2,3],[4,5,6],[7,8,9]]
//	输出:[[7,4,1],[8,5,2],[9,6,3]]给定一个N×N的二维矩阵表示图像，90度顺时针旋转图像。
//
//
//
//您在真实的面试中是否遇到过这个题？  
//样例
//样例1：
//
//输入:[[1,2],[3,4]]
//输出:[[3,1],[4,2]]
//样例 2:
//
//输入:[[1,2,3],[4,5,6],[7,8,9]]
//输出:[[7,4,1],[8,5,2],[9,6,3]]
	
	public static void main(String[] args) {
		int[][] nums= {{1,2,3},{4,5,6},{7,8,9}};
		rotate(nums);
	}
	
	public static void rotate(int[][] matrix) {
		int xLen=matrix.length;
		int yLen=matrix.length;
		boolean[][] isChangeMatrix=new boolean[yLen][xLen];
		int temp=-1;
		for(int i=0;i<xLen;i++) {
			for(int j=0;j<yLen;j++) {
				if(isChangeMatrix[yLen-1-j][i]) {
					continue;
				}
				temp=matrix[yLen-1-j][i];
				matrix[yLen-1-j][i]=matrix[i][j];
				matrix[i][j]=temp;
				isChangeMatrix[yLen-1-j][i]=true;
				isChangeMatrix[i][j]=true;
			}
		}
		for(int i=0;i<yLen;i++) {
			for(int j=0;j<xLen;j++) {
				System.out.print(matrix[i][j]+",");
			}
			System.out.println();
		}
	}
}
